function CREATE_WAVE(t)
	local a_Wave = X.Wave:new()
	a_Wave:SetName(t.name)
	a_Wave:SetPath(t.path)
	a_Wave:SetNumber(t.number)
	a_Wave:SetShield(t.shield)
	a_Wave:SetMesh(t.mesh)
	a_Wave:Register()
	--a_Wave:SetCollisionRadius(t.collisionradius)
end

function CREATE_WEAPON(t)
	local a_Weapon = X.CWeapon:new()
	a_Weapon:SetName(t.name)
	a_Weapon:SetSpeed(t.speed)
	a_Weapon:SetFrequency(t.frequency)
	a_Weapon:SetMoveType(t.move)
	a_Weapon:SetShooterType(t.shooter)
	a_Weapon:Register()
	--a_Weapon:SetCollisionRadius(t.collisionradius)
end

function CREATE_PLAYER(t)
	local a_Player = X.CPlayer:new()
	a_Player:SetMesh(t.meshfile)		
	a_Player:SetName(t.name)
	a_Player:SetInputConfigName(t.inputconfigname)		
	a_Player:SetSpeedVertical(t.speedvertical)
	a_Player:SetSpeedHorizontal(t.speedhorizontal)		
	a_Player:SetAngleUpMove(t.angleupmove)			
	a_Player:SetAngleDownMove(t.angledownmove)		
	a_Player:SetSpeedToAngleUpMove(t.speedtoangleupmove)	
	a_Player:SetSpeedToAngleDownMove(t.speedtoangledownmove)
	a_Player:SetSpeedToAngleZero(t.speedtoanglezero)
	a_Player:SetDeadZone(t.deadzone)			
	a_Player:Register()
	--a_Player:SetCollisionRadius(t.collisionradius)
end
function CREATE_INPUT_CONFIG(t)
	local a_InputConfig = X.InputConfig:new()
	a_InputConfig:SetName(t.name)		
	a_InputConfig:SetKeyUp(t.keyup)
	a_InputConfig:SetKeyDown(t.keydown)
	a_InputConfig:SetKeyRight(t.keyright)
	a_InputConfig:SetKeyLeft(t.keyleft)
	a_InputConfig:SetKeyShoot(t.keyshoot)
	a_InputConfig:SetJoyPort(t.joyport)
	a_InputConfig:Register()
end
function CREATE_LEVEL(t)
	local a_Level = X.Level:new()
	a_Level:SetMusic(t.music)		
	a_Level:SetSound(t.sound)
	a_Level:Register()		
end
function CREATE_POSITIONCONTROLLER(t)
	local a_PC = X.AnimationControllerInfo:new()
	akeys = t.akeys
	a_PC:CreateControllerVector3()
	for i, v in ipairs(akeys) do
		a_PC:SetValuesAtKey(i,v[2][1],v[2][2],v[2][3])	
	end	
	a_PC:SetTarget(t.target)
	a_PC:Register()		
end